/**
 * keyof 类型操作符
 * */

// type Point_keyof = {
//   x: number,
//   y: number
// }

// type P = keyof Point_keyof

// const p1: P = 'x'
// const p2: P = 'y'
// const p3: P = 'z'

type Arrayish = {
  [n: number]: boolean
}

type A = keyof Arrayish

const a_keyof: A = 100

// 当索引类型是一个string类型，那么他的类型就是number | string 的联合类型
type Mapish = {
  [k: string]: boolean
}

type M = keyof Mapish

const m_keyof1: M = 'x'
const m_keyof2: M = 1
// const m_keyof3: M = true

